<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>

    //转布尔型
    let n1, n2 = 123,  n3 =null,  n4 =true, n5 = 'hello', n6 ='',  n7 =0;
    console.log(Boolean(n1));  //将未定义 转为布尔型
    console.log(Boolean(n2));  //非0数值 转为布尔型
    console.log(Boolean(n3));   //null 转为布尔型
    console.log(Boolean(n4));    //   转为布尔型
    console.log(Boolean(n5));    //非空字符串 转为布尔型
    console.log(Boolean(n6));    // 空字符串 转为布尔型
    console.log(Boolean(n7));    // 0 转为布尔型
    //未定义 ， 非0数字 ，null , 空字符串 ， 0,转为布尔型结果为false
    //非0数值和非空字符串转为布尔为 tuer

    console.log('-----------------------------');
    //转空型
    console.log(Number(n6));
    console.log(parseInt(n6));
    console.log(parseFloat(n6));

    let num =parseInt(n6);
    console.log(num);
    console.log(typeof(num));
    console.log(Boolean(n6)); 
    console.log('--------------------');


    //转字符型  string 或 tostring
    let S1=123, S2=true,  S3=false, S4=null,  S5;
    console.log(S1);
    console.log(S2);

    console.log('-------------------')
    console.log(String(S1));  //数值
    console.log(S1.toString());
    console.log(String(S2));  //布尔
    console.log(n2.toString());
    console.log(String(S3));  //布尔
    console.log(S3.toString());
    console.log(String(S4));    //空 
    //console.log(n4.toString());   //null  没有tostring（） 的方法
    console.log(String(S5));    //未定义
    //console.log(n5.toString());   //undefined  没有tostring（） 的方法

    console.log('---------------')
    let str1=String(S1);
    console.log(str1)  // 打印出 123 数值
    console.log(typeof(str1))  //打印出 string 字符

    console.log('------------------')
    let str2='abcdefj';  //字符 string
    console.log(str2)
    console.log(Boolean(str2));   //bool

</script>
</html>